Loading the neccesary libraries

library(readr)        # load csv
library(rmarkdown)    # see table
library(HH)           # likert plotting

Loading the tables

science <- read_csv("../data/science.csv")
experience <- read_csv("../data/experience.csv")
efficiency <- read_csv("../data/efficiency.csv")
paged_table(science)
paged_table(experience)
paged_table(efficiency)

Plotting the science dataset

likert(Measures ~ .,
       data=science,
       as.percent=TRUE,
       positive.order=TRUE,
       main="Valore cada una de las siguientes cuestiones relacionadas con su opinión sobre la ciencia",
       rightAxis=F,
       key.border.white=F,
       auto.key.in = list(cex=1.5),
       ylab=NULL,
       scales = list(y = list(cex = 1.5))) 

Plotting the experience dataset

likert(Measures ~ .,
       data=experience,
       as.percent=TRUE,
       positive.order=TRUE,
       main="Marque la opción que mejor represente su conocimiento y experiencia con cada práctica en los últimos 5 (cinco) años",
       rightAxis=F,
       key.border.white=F,
       auto.key.in = list(cex=1.5),
       ylab=NULL,
       scales = list(y = list(cex = 1.5))) 

Plotting the efficiency dataset

likert(Measures ~ .,
       data=efficiency,
       as.percent=TRUE,
       positive.order=TRUE,
       main="Elija la opción que mejor represente cuán importante considera que es cada una de las siguientes prácticas para mejorar la calidad y eficiencia de las investigaciones en su campo",
       rightAxis=F,
       key.border.white=F,
       auto.key.in = list(cex=1.5),
       ylab=NULL,
       scales = list(y = list(cex = 1.5))) 

Plotting the science dataset by education

significance_by_education <- read_csv("../data/significance_by_education.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   education = col_character(),
##   `Algo de acuerdo` = col_double(),
##   `Bastante de acuerdo` = col_double(),
##   `Muy de acuerdo` = col_double(),
##   `Nada de acuerdo` = col_double(),
##   `No sé` = col_double()
## )
origNames = colnames(significance_by_education)
myPanelFunc <- function(...){
  panel.likert(...)
  vals <- list(...)
  DF <- data.frame(x=vals$x, y=vals$y, groups=vals$groups)
  grps <- as.character(DF$groups)
  for(i in 1:length(origNames)){
    grps <- sub(paste0('^',origNames[i]),i,grps)
  }
  DF <- DF[order(DF$y,grps),]
  DF$correctX <- ave(DF$x,DF$y,FUN=function(x){
    x[x < 0] <- rev(cumsum(rev(x[x < 0]))) - x[x < 0]/2
    x[x > 0] <- cumsum(x[x > 0]) - x[x > 0]/2
    return(x)
  })
  subs <- sub(' Positive$','',DF$groups)
  collapse <- subs[-1] == subs[-length(subs)] & DF$y[-1] == DF$y[-length(DF$y)]
  DF$abs <- abs(DF$x)
  DF$abs[c(collapse,FALSE)] <- DF$abs[c(collapse,FALSE)] + DF$abs[c(FALSE,collapse)]
  DF$correctX[c(collapse,FALSE)] <- 0
  DF <- DF[c(TRUE,!collapse),]
  DF$perc <- round(ave(DF$abs,DF$y,FUN=function(x){x/sum(x) * 100}), 0)
  DF$perc <- paste0(DF$perc,'%')
  DF$perc[DF$perc == "0%"] <- ""
  panel.text(x=DF$correctX, y=DF$y, label=DF$perc, cex=1)
}

likert(education ~ .,
       data=significance_by_education,
       as.percent=TRUE,
       positive.order=TRUE,
       main="Gran parte de los investigadores solamente publica los estudios en donde obtienen diferencias estadísticamente significativas",
       key.border.white=F,
       panel=myPanelFunc,
       auto.key.in = list(cex=1.5),
       ylab=NULL,
       scales = list(y = list(cex = 1.5)))